package cn.edu.njuit.webserver.securityserver.service;

import cn.edu.njuit.webserver.securityserver.service.dto.UserToken;

/**
 * @Description: 令牌服务
 * @Data: 2022/8/30 10:58
 * @Author: guzy
 */
public interface TokenService {
    /**
     * 校验令牌合法性
     *
     * @param token 令牌
     * @return boolean
     */
    boolean validateToken(String token);

    /**
     * 根据登录生成合法令牌
     *
     * @param login
     * @return
     */
    String getToken(String login) throws Exception;

    /**
     * 根据token获取登录名
     *
     * @param token
     * @return
     */
    String getLogin(String token);

    /**
     * 反解析换取令牌用户对象
     *
     * @param token 用户令牌
     * @return UserToken 对象
     */
    UserToken getUser(String token);
}
